一种向量网络地址编码方法,编码得到的地址称为向量网络地址。该方法依据数据传输路径方向上的信源设备(A)和转发设备(G、I、J)的输出端口名进行地址编码,每个输出端口名作为一个分量地址,这些分量地址依路径方向次序组成一个序列,序列的第一分量地址是信源设备(A)的输出端口名(A1);序列的第二分量地址是第一个转发设备(G)的输出端口名(G2);序列的第三分量地址是第二个转发设备(I)的输出端口名(I3);以此类推,序列的最后一个分量地址是最后一个转发设备(J)的输出端口名(J2)。这个序列{A1,G2,I3,J2}就是向量网络地址编码结果,就是信源设备(A)向信宿设备(C)传输数据的向量网络地址。
1.一种向量网络地址编码方法,其特征在于,依据数据传输路径方向上 的信源设备和转发设备的输出端口号进行地址编码,每个输出端口号作为一个 分量地址,这些分量地址依路径方向次序组成一个序列,序列的第一分量地址 是信源设备的输出端口号,序列的第二分量地址是数据传输路径上的第一个转 发设备的输出端口号,序列的第三分量地址是第二个转发设备的输出端口号, 以此类推,序列的最后一个分量地址是最后一个转发设备的输出端口号,这个 序列就是向量网络地址编码结果,即向量网络地址,其中的每个输出端口号是 二进制形式,而且转发设备进行每个数据转发操作步骤时只需要解读向量网络 地址第一个分量,解读后从数据包中删除该第一个分量,另外,根据二进制数 能表示的数值范围,向量网络地址的每个分量地址的二进制编码的位数决定于 该分量地址对应转发设备的输出端口数量多少,而且二进制形式的分量地址组 成向量网络地址时,分量地址之间没有任何显式标记,一旦组成向量网络地址, 只要事先不知道第一个分量地址的二进制位数,就不可能把第一个分量地址从 向量网络地址中分割出来。 技术领域 本发明涉及一种网络中电子设备的地址编码方法。 背景技术 电子设备为了完成或更好地完成它们的任务,常常需要用线缆或通信线路连成一个网 络,建立网络通信关系,相互交换信息,以便相互协作。在这种电子设备连成的网络中,从 功能上把电子设备分成两类:端站设备和转发设备。端站设备是发送和接收信息的设备,作 为发送信息角色时称其为信源设备,作为接收信息角色时称其为信宿设备。转发设备是信息 传输的中间设备,在信源设备向信宿设备发送信息的过程中,起信息中转传递的作用,比如 IP网(英特网)的路由器、ATM网(异步传输网)的交换机等都是转发设备。 信源设备、转发设备、信宿设备是电子设备在数据传输时的一种角色,实际的一个电 子设备在不同的时候,可能扮演不同的角色,比如,一个电子设备它是转发设备,但有时也 作为信宿设备接收数据不再转发。不失一般性,为简化叙述,限定一个电子设备是单角色的, 即一个电子设备只能是信源设备、转发设备、信宿设备之一。 在电子设备连成网络之后,为了达到通信的目的,还需要建立一套编码方法,为每个 电子设备指定一编码标识,否则无法进行通信,这种标识称为电子设备的地址。 常用的电子设备地址有IP网的IP地址,ATM网的路径信道地址等。在这两种网络体 系中,一个电子设备赋予一个明确的固定不变的地址,就是说采用绝对的地址编码方法,得 到的地址称为绝对地址。绝对的地址编码方法的特征为信宿设备是绝对地址的一元函数,无 论在何时何地,绝对地址给定,信宿设备就确定,表示为 信宿设备=f(绝对地址) 在此f是一个抽象函数,表示二者的依赖关系。 评价网络地址编码方法好坏,主要依据该方法建立的网络在安全性、复杂性和扩展适 应性等方面的性能。目前常用的IP网和ATM网等网络体系存在安全性不高、交换转发复 杂、扩展适应性不好的问题,主要原因就是网络地址编码方法不合理所致,下面以IP网为 例说明。 网络体系安全性不高,主要原因是:(1)转发设备,即IP网的路由器,对所传输数据 中包含的信宿设备的地址必须直接可见,不能加密,否则路由器看不到地址就无法路由转发 数据;(2)IP网的地址是固定长度地址,能群举所有地址,可以通过搜索发现所有地址,带 来不安全性;(3)一个电子设备一个固定的地址,只要知道其网络地址就可以访问电子设备, 不管是谁来访问,从什么地方访问。 网络体系复杂。IP网的网络地址只是电子设备的标识,不包含数据的路由信息,路由 信息通常存储于转发设备。转发设备是大量用户共同使用的设备,其大量动态路由信息的获 取、维护相当复杂,而且,使用大量路由信息消耗巨大的计算资源,致使IP网的数据转发 设备要求的存储空间和计算能力很高,有建设成本高,存在高速瓶颈,影响网络的应用。 网络体系的扩展和适应性不好,主要原因是:(1)网络地址严格不可相重,也就是说, 整个网络中的所有电子设备的网络地址不能有相同的,必须在整个网络范围协调解决重名问 题,通常建立一种申请分配制度来解决,也就是说,不能随意扩展网络,扩展之前必须办理 申请分配手续,这就限制了网络扩展的方便性;(2)地址范围固定,一方面,对于大网络, 存在地址资源枯竭问题;另一方面,对于孤立小网,偏长的网络地址很浪费,带来包头开销 相对过大的问题。 发明内容 为克服现有技术存在的问题,本发明提出一种向量网络地址编码方法,编码得到的地 址称为向量网络地址。 在说明本发明的技术方案之前,首先定义一个术语:数据传输路径。 在网络上传输的数据,从信源设备出发,经过一定数量的转发设备转发,最终到达信 宿设备。传输过程中数据所经过信源设备、转发设备、信宿设备形成的设备序列称为数据传 输路径。在序列中,设备的次序就是数据经过的次序。 向量网络地址编码方法依据数据传输路径方向上的信源设备和转发设备的输出端口名 进行地址编码,每个输出端口名作为一个分量地址,这些分量地址依路径方向次序组成一个 序列,这个序列就是向量网络地址编码方法的编码结果,即向量网络地址。更具体地说,向 量网络地址编码方法的编码结果就是下列有限序列:序列的第一分量地址是信源设备的输出 端口名;序列的第二分量地址是数据传输路径上的第一个转发设备的输出端口名;序列的第 三分量地址是第二个转发设备的输出端口名;以此类推,序列的最后一个分量地址是最后一 个转发设备的输出端口名。 用向量网络地址编码方法,任何一条数据传输路径都可以编码得到一个唯一的向量网 络地址,反过来说,一个信源设备只要知道向量网络地址,它就可以唯一地寻址定位信宿设 备,而且经过的路径也被完全确定。 向量网络地址是一种相对的地址,只能说:“从一个信源设备到一个信宿设备的向量网 络地址是什么”,不能说:“一个信宿设备的向量网络地址是什么”。换句话说,在向量网络 地址编码情况下,信宿设备是信源设备和向量网络地址的二元函数,地址给定,再给定信源 设备,信宿设备才能确定,表示为 信宿设备=g(信源设备,向量网络地址) 在此g是一个抽象函数,表示三者的依赖关系。一个向量网络地址如果没有信源设备作参考, 它就没有意义,不能寻址找到信宿设备。 信源设备向信宿设备发送数据时,在数据中只要包含向量网络地址信息即可,不需要包 含信源设备名称,信源设备名称信息隐含确定,就是数据的发送者,不需要显式给定。 本发明的有益效果是使电子设备网络比以往的网络体系明显地更加安全、简单,而且扩 展适应性更好,具体讲有以下有益效果: (1)依据向量网络地址编码方法建立的网络更安全,比用IP地址建立的IP网其安全性 有本质提高,主要由于向量网络地址的以下特性所致: (i)相对性。从一个信源设备起,按照向量网络地址可以找到信宿设备,但是从另一个 信源设备起,按照同一向量网络地址找不到原来的信宿设备。 (ii)不可解读性。向量网络地址作为一个向量,其分量个数和每个分量的取值个数不是 固定的。所以,在数据传输路径上,没有一个电子设备可以完全解读向量网络地址,一个电 子设备只能解读其中它所用到的部分。 (iii)不可穷举性。向量网络地址的分量个数和每个分量的取值个数都不定,而且没有上 限,所以不可能通过穷举所有地址来扫描发现某个电子设备的地址。特别是向量网络地址具 有无限多值性,即使一个很小的网络,其分量个数也可以无限大。 (iv)可加密性。向量网络地址由一个个分量组成,每一步转发操作,只依靠其中一个分 量,其他分量可以处于加密状态。 (2)网络相对简单。主要表现在,向量网络地址携带路由信息,转发设备转发数据容 易,所以转发设备简单。而IP地址不携带路由信息,路由信息需要转发设备收集和维护, 因此消耗巨大的计算资源,使转发设备极其复杂。 (3)适应性强,效率高。网络想扩展就扩展,不存在地址相重的问题。网络地址的长 度根据需要确定,不受限制,能适应任何大小的网络,而不会发生网络地址枯竭。另一方面, 对于小网络,地址很短,地址带来的数据传输负担很小,所以通信线路资源的使用效率高。 附图说明 图1端口名称标记示意图。 图2二进制编码的端口标记示意图。 图3转发设备所执行的转发程序的框图。 具体实施方式 网络中所传输的数据称为数据包,为说明向量网络地址编码方法,首先给出数据包格 式的一个示例,然后给出转发设备的路由交换方法示例,阐明向量网络地址在转发设备中如 何提供路由信息,实现数据包的路由功能,从而阐明向量网络地址的特性。 数据包的格式: Headxa0Len1xa0RouteAddr1xa0Info 其中 Head:数据包头的固定部分的信息集合,包括的信息有数据包格式的版本号、传输优 先级等信息。 Len1:整型数值,代表Len1之后的所有数据之bit数。 RouteAddr1:代表向量网络地址。 Info:数据包所承载的数据信息。 路由交换方法: 从信源设备到信宿设备的数据传输过程可以分解为数据传输路径上一个个电子设备的 一系列路由交换过程,路由交换过程所依据的方法称为路由交换方法。在向量网络地址情况 下,一个电子设备的路由交换方法很简单:根据向量网络地址,把数据从规定的输出端口转 送到另一个电子设备。 图3是转发设备所执行的转发程序的框图,描述了路由交换方法的具体步骤。该转发程 序运行在网络中的每个转发设备之中,转发设备的每个输入端口当收到一个数据包时,该转 发程序就执行一次,实现一个电子设备中的路由交换过程,它只有3步基本操作:(i)从数据 包的向量网络地址RouteAddr1中分离出当前转发操作的输出端口号,即向量网络地址 RouteAddr1的第一个分量地址,记为To;(ii)修改数据包把To从数据包中删除;(iii)把修改 后的数据包发到输出端口To。 以上数据包格式和路由交换方法的条件下,以下给出向量网络地址编码方法的两个实 施方式。 1.基于端口名称的向量网络地址编码方法 (1)编码方法 第一种实施方法如图1,图中方块和圆圈都代表电子设备,二者功能有所区别,方块是 信息的发送和接收设备,称为端站设备,圆圈是信息的转发设备。虚曲线框表示网络的边界, 其内部全是转发设备,外部全是端站设备。图中给出了10个电子设备及其连接关系,该图 只是一个示例,实际网络的电子设备数量、每个电子设备的端口数量,以及电子设备连接关 系随应用不同而不同。在图中,为叙述方便,每个电子设备标记了一个名称,分别是A、B、 C直到J。在图中,每个电子设备的端口也标记了一个端口名称,比如E的三个端口标记为 E1、E2和E3,各端口名称代表任意根据需要选定的字符串,包括编号形式,编号是字符串 的一种特殊情况。 向量网络地址编码方法依据数据传输路径方向上的信源设备和转发设备的输出端口名 进行地址编码,每个输出端口名作为一个分量地址,这些分量地址依路径方向次序组成一个 序列,序列的第一分量地址是信源设备的输出端口名,序列的第二分量地址是数据传输路径 上的第一个转发设备的输出端口名,序列的第三分量地址是第二个转发设备的输出端口名, 以此类推,序列的最后一个分量地址是最后一个转发设备的输出端口名,这个序列就是向量 网络地址编码结果,即向量网络地址。 以图1网络中粗实线所示路径为例,按照上述向量网络地址编码方法,给出信源设备A 向信宿设备C传输数据的向量网络地址编码结果。 序列的第一分量地址是信源设备A的输出端口名A1;序列的第二分量地址是数据传输 路径上的第一个转发设备G的输出端口名G2;序列的第三分量地址是第二个转发设备I的 输出端口名I3;以此类推,序列的最后一个分量地址是最后一个转发设备J的输出端口名J2。 这个序列{A1,G2,I3,J2}就是向量网络地址编码结果,就是信源设备A向信宿设备C传输数 据的向量网络地址。只要知道{A1,G2,I3,J2}这个地址,A必定能找到C,而且寻找的路径也 完全被地址规定好,没有二义性。这种编码方法的特征为信宿设备C是的信源设备A和向 量网络地址{A1,G2,I3,J2}的二元函数,地址{A1,G2,I3,J2}给定,再给定信源设备A,信宿设 备C才能确定,表示为: C=g(A,{A1,G2,I3,J2}) 在此g是一个抽象函数,表示三者的依赖关系。一个向量网络地址如果没有信源设备作参考, 它就没有意义,不能寻址找到信宿设备。 用向量网络地址编码方法不难编码得到图中其它向量网络地址,比如B作为信源设备, D作为信宿设备,{B1,I4,H2,F3}就是B到D的一个向量网络地址;D作为信源设备,B作 为信宿设备,{D1,F2,H3,I2}就是D到B的一个向量网络地址,而{D1,F1,E1,G2,I2}是D 到B的另外一个向量网络地址。一个信源设备到一个信宿设备可以有多个向量网络地址,但 是从一个信源设备用一个向量网络地址能够唯一确定一个信宿设备。 (2)路由交换过程示例 本路由交换过程示例记为“示例1”。 为清楚起见,先假设向量网络地址是输出端口名形式,数据包要从信源设备A送出, 数据包包含向量网络地址RouteAddr1=={A1,G2,I3,J2},即数据包为 [Headxa0Len1{A1,G2,I3,J2}Info] 各个转发设备中的转发程序转发该数据包的过程如下 (a)在信源设备A中,转发程序把数据包的向量网络地址的第一个分量地址A1取出, 令To=A1,数据包变成 [Headxa0Len1{G2,I3,J2}Info] 把以上数据包从信源设备A的出口To=A1送出,到达转发设备G,见图1。 (b)在转发设备G中,收到以上数据包后,转发程序把数据包的向量网络地址目前的 第一个分量地址G2取出,令To=G2,数据包变成 [Headxa0Len1{I3,J2}Info] 把以上数据包从转发设备G的出口To=G2送出,到达转发设备I,见图1。 (c)在转发设备I中,收到以上数据包后,转发程序把数据包的向量网络地址目前的 第一个分量地址I3取出,令To=I3,数据包变成 [Headxa0Len1{J2}Info] 把以上数据包从转发设备I的出口To=I3送出,到达转发设备J,见图1。 (d)在转发设备J中,收到以上数据包后,转发程序把数据包的向量网络地址目前的 第一个分量地址J2取出,令To=J2,数据包变成 [Headxa0Len1{}Info] 把以上数据包从转发设备J的出口To=J2送出,到达信宿设备C,完成整个数据传输 过程。 2.二进制条件下的向量网络地址编码方法 (1)编码方法 为使问题更加具体,便于清楚说明实施方式,令图1中的每个电子设备是一台计算机, 并用以太网网线连接所有计算机成一计算机网络,端站设备有一个以太网络接口卡,每个转 发设备有对应端口数量的以太网络接口卡。 图2是二进制编码的端口标记示意图,是图1的更加具体的示例,本图中线条和符号 的意义同图1,但把电子设备的端口名称更具体化,把一般的名称用数字来代替,即令图1 中的端口名去掉字母的数字形式,比如即B1改为1,以简化向量网络地址的表示。 图2是进行以上实例化操作后的结果,向量网络地址的表示形式由{A1,G2,I3,J2}变成 {1,2,3,2}。 为在计算机中更有效地表示向量网络地址,进一步把向量网络地址{1,2,3,2}表示成二进 制形式,方法如下。 首先,数据传输路径上的电子设备的端口数量不相同,A、G、I、J四个电子设备的端 口数量分别为1、3、4、3。根据二进制数能表示的数值范围,电子设备A有1个端口,所 以用1位二进制数就可以表示;电子设备G有3个端口,所以用2位二进制数就可以表示; 电子设备I有4个端口,所以必须用3位二进制数才可以表示;电子设备J有3个端口, 所以用2位二进制数就可以表示。 这样电子设备A、G、I、J为分别用1、2、3、2位二进制数就可以表示所有输出端口 编号,得到向量网络地址的二进制编码如下 十进制编码:{1xa0xa02xa0xa0xa03,xa0xa02} 二进制编码:{1,10,011,10} 二进制位数:1xa0xa0xa02xa0xa0xa03xa0xa0xa0xa02 这样,向量网络地址的表示形式最后变成二进制形式11001110 {A1,G2,I3,J2}=>{1,2,3,2}=>{1,10,011,10}=>11001110 (2)路由交换过程示例 本路由交换过程示例记为“示例2”。 本示例同“示例1”,但向量网络地址采用二进制形式。数据包要从信源设备A送出, 数据包包含向量网络地址11001110,即数据包为 [Headxa0Len1xa011001110xa0Info] 各个转发设备中的转发程序转发该数据包的过程如下 (a)在信源设备A中,已知本设备只有一个端口,输出端口的编码只有一位二进制数 情况下,转发程序把数据包中向量网络地址的第一个分量地址1取出,令To=1,数据包变 成 [Headxa0Len1xa01001110xa0Info] 把以上数据包从信源设备A的出口To=1送出,到达转发设备G,见图2。 (b)在转发设备G中,已知本设备只有三个端口,输出端口的编码有两位二进制数情 况下,收到以上数据包后,转发程序把数据包中向量网络地址目前的第一个分量地址10取 出,二进制10表示十进制2,所以To=2,数据包变成 [Headxa0Len1xa001110xa0Info] 把以上数据包从转发设备G的出口To=2送出,到达转发设备I,见图2。 (c)在转发设备I中,已知本设备只有四个端口,输出端口的编码有三位二进制数情 况下,收到以上数据包后,转发程序把数据包中向量网络地址目前的第一个分量地址011取 出,二进制011表示十进制3,所以To=3,数据包变成 [Headxa0Len1xa010xa0Info] 把以上数据包从转发设备I的出口To=3送出,到达转发设备J,见图2。 (d)在转发设备J中,已知本设备只有三个端口,输出端口的编码有两位二进制数情 况下,收到以上数据包后,转发程序把数据包向量网络地址目前的第一个分量地址10取出, 二进制10表示十进制2,所以To=2,数据包变成 [Headxa0Len1{}Info] 把以上数据包从转发设备J的出口To=2送出,到达信宿设备C,完成整个数据传输过 程。 向量网络地址的性质说明。 利用以上路由交换过程示例说明向量网络地址的性质如下: 无限多值性。从一个信源设备到一个信宿设备的向量网络地址不只一个,是无限个。 比如,在图1中,从A到C的向量网络地址有 {A1,G2,I3,J2},{A1,G2,I4,H4,J2},{A1,G3,E2,H4,J2},{A1,G3,E2,H3,I3,J2} {A1,G3,E2,H3,I1,G3,E2,H4,J2}等等。 上述地址中,第一个向量网络地址是最短的,而最后一个向量网络地址的G3和E2被 循环,是最长的。一条路径在网络中可以有任意多个局部循环,所以从A到C的向量网络 地址可以有无穷多个。实际应该中采用最短或次短的一条路径即可,但是,一定的循环对于 加密有用。 不可解读性。从“示例2”可以看出,一个转发设备只可以解读自己用到的分量地址。 比如转发设备G,它能看到的地址只有1001110,前面的1已经被前面的设备用掉并删除。 而且,对1001110来讲,转发设备G知道自己的位数是2,所以切出10去使用,但是剩下 的01110有多种可能的组合方法:01+110,011+10,01+1+10,转发设备G并不知如何分开, 从而它不能解读之后的地址分量是什么。总之,转发设备G只能解读属于它的10,之前和 之后的向量网络地址分量它不可知,都不能解读。 可加密性。在不改变向量网络地址分量的二进制分配位数情况下,对向量网络地址加密, 对于数据传输路径上的任一个转发设备,只要知道自己用到的那一个地址分量如何解密就可 以完成数据的转发设备任务。这样,信源设备只要在正式通信之前,通过协商与路径上的每 一个转发设备建立保密字,就可以进行地址完全加密的通信,考虑到向量网络地址的不可解 读性,结论是:向量网络地址有极强的加密通信能力,不但数据可以加密,而且谁与谁在通 信也难以被发现!! 对于小网络,地址很短。向量网络地址的分量个数与网络中的转发设备数有直接关系, 每个转发设备输出端口数与每分量占用的二进制位数有直接关系。网络小,转发设备数和每 个转发设备输出端口数就少,向量网络地址的分量个数和每分量占用的二进制位数就少,所 以地址就短。